﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using WebArchivosTelefonica.Jerarquias;
using System.Collections.ObjectModel;
using System.Collections.Generic;

namespace WebArchivosTelefonica
{
	/// <summary>
	/// Página que muestra el resumen del proyecto subido por un usuario
	/// </summary>
	public partial class ReporteProyecto : System.Web.UI.Page
	{
		/// <summary>
		/// Page load de la página.
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		protected void Page_Load(object sender, EventArgs e)
		{
			//se obtiene el id del proyecto
			Guid idProyecto = new Guid(Page.Request.Params.Get("idProyecto"));

			string[] rolesUsuario = Roles.GetRolesForUser();


			//se seleccionan todos los roles que tengan tres substrings partiendolos por '_'. Según
			//la convención establecida estos roles solo pueden ser los roles de proyecto.
			//NOTA: si la convención cambia por alguna razón esta parte del código también debe modificarse
			List<string> rolesProyectos = rolesUsuario.ToList().FindAll(x => x.Split(new char[1] { '_' }).Length == 3);

			//se busca el rol de este proyecto
			string rolProyectoActual = rolesProyectos.Find(x => x.Contains(idProyecto.ToString()));

			//si se tiene el rol se carga en el viewstate para el posterior redireccionamiento a 
			//la documentación, si no se tiene se redirecciona al login inmediatamente
			if (rolProyectoActual == null)
				Response.Redirect("login.aspx");
			else
			{
				ViewState["idCliente"] = rolProyectoActual.Split(new char[1] { '_' })[1];
				ViewState["idProyecto"] = rolProyectoActual.Split(new char[1] { '_' })[2];
			}
			
			frame1.Attributes["src"] = idProyecto.ToString()+"/"+idProyecto.ToString()+".html";

			
		}
		/// <summary>
		/// Click del boton de redireccionamiento a la documentacion del proyecto
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		protected void Button1_Click(object sender, EventArgs e)
		{
			string idCliente = (string)ViewState["idCliente"];
			string idProyecto = (string)ViewState["idProyecto"];
			Response.Redirect("archivos.aspx?idCliente="+idCliente+"&idProyecto="+idProyecto);
		}
	}
}
